﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class ReceiveSe : System.Web.UI.Page
    {
        protected string v_oid;		// 订单号
        protected string v_pstatus;	// 支付状态码
        //20（支付成功，对使用实时银行卡进行扣款的订单）；
        //30（支付失败，对使用实时银行卡进行扣款的订单）；

        protected string v_pstring;	//支付状态描述
        protected string v_pmode;	//支付银行
        protected string v_amount;	//支付金额
        protected string v_moneytype;	//币种
        protected string remark1;	// 备注1
        protected string remark2;	// 备注1
        protected string v_md5str;
        protected string status_msg;
        protected string str;	// 备注1

        protected void Page_Load(object sender, EventArgs e)
        {
            // MD5密钥要跟订单提交页相同，如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥
            string key = Request["v_key"];
            // 如果您还没有设置MD5密钥请登陆我们为您提供商户后台，地址：https://merchant3.chinabank.com.cn/
            // 登陆后在上面的导航栏里可能找到“B2C”，在二级导航栏里有“MD5密钥设置”
            // 建议您设置一个16位以上的密钥或更高，密钥最多64位，但设置16位已经足够了

            v_oid = Request["v_oid"];
            v_pstatus = Request["v_pstatus"];
            v_pstring = Request["v_pstring"];
            v_pmode = Request["v_pmode"];
            v_md5str = Request["v_md5str"];
            v_amount = Request["v_amount"];
            v_moneytype = Request["v_moneytype"];
            remark1 = Request["remark1"];
            remark2 = Request["remark2"];

            string s_str = v_oid + v_pstatus + v_amount + v_moneytype + key;

            str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s_str, "md5").ToUpper();
            v_md5str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s_str, "md5").ToUpper();

            if (str == v_md5str) {
                status_msg = "请保留以下信息并联系管理员后，继续执行其他动作。";
                if (v_pstatus.Equals("20")) {
                    //支付成功
                    //在这里商户可以写上自己的业务逻辑
                    //string sjksql, qyGold;
                    string qyUser;
                    //int CountGold;
                    // 获得当前企业账户余额剩余总数
                    qyUser = Server.UrlDecode(Request.Cookies["qyUser"].Values["name"]);
                    //SqlDataReader dr = (SqlDataReader)DbHelper.ExecuteReader(CommandType.Text, "select top 1 qygold from qygoldmanage where qyname='" + qyUser + "' order by id desc", null);
                    //if (dr.Read()) {
                    //    qyGold = dr["qygold"].ToString();
                    //    if (!v_amount.Contains("0.")) {
                    //        CountGold = int.Parse(qyGold) + int.Parse(v_amount.Substring(0, v_amount.IndexOf('.')));
                    //        sjksql = "insert into qygoldmanage values ('" + qyUser + "','" + CountGold + "','【在线充值】增加 " + v_amount + " 点数','" + DateTime.Now + "')";
                    //        DbHelper.ExecuteNonQuery(CommandType.Text, sjksql, null);
                    //        status_msg = "您好 " + qyUser + "，您已经支付成功。点数已经冲到您的账户中，请登录网站查看。";
                    //    } else {
                    //        status_msg = "您好 " + qyUser + "，您已经支付成功。但点数未冲到您的账户中，请保留以下信息并联系管理员。";
                    //    }
                    //} else {
                    //    status_msg = "您好 " + qyUser + "，您已经支付成功。请保留以下信息并联系管理员。";
                    //}
                }
            } else {
                status_msg = "校验失败，数据可疑";
            }
        }
    }
